package com.ruoyi.tzai.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 文件信息对象 tzai_file_info
 * 
 * @author tzai
 * @date 2025-11-03
 */
public class FileInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 文件ID */
    private Long fileId;

    /** 存储文件名 */
    @Excel(name = "存储文件名")
    private String fileName;

    /** 原始文件名 */
    @Excel(name = "原始文件名")
    private String originalName;

    /** 文件路径 */
    @Excel(name = "文件路径")
    private String filePath;

    /** 文件URL */
    @Excel(name = "文件URL")
    private String fileUrl;

    /** 文件类型(image/audio/document/video) */
    @Excel(name = "文件类型", readConverterExp = "image=图片,audio=音频,document=文档,video=视频")
    private String fileType;

    /** 文件大小(字节) */
    @Excel(name = "文件大小(字节)")
    private Long fileSize;

    /** MIME类型 */
    @Excel(name = "MIME类型")
    private String contentType;

    /** 存储平台 */
    @Excel(name = "存储平台")
    private String storagePlatform;

    /** 文件元数据JSON(x-file-storage返回) */
    private String fileMetadata;

    /** 业务类型(company_logo/article_image/user_avatar等) */
    @Excel(name = "业务类型", readConverterExp = "company_logo=公司Logo,user_avatar=用户头像,article_image=资讯图片")
    private String bizType;

    /** 业务关联ID */
    @Excel(name = "业务关联ID")
    private Long bizId;

    /** 状态(0停用 1正常) */
    @Excel(name = "状态", readConverterExp = "0=停用,1=正常")
    private String status;

    public void setFileId(Long fileId) 
    {
        this.fileId = fileId;
    }

    public Long getFileId() 
    {
        return fileId;
    }

    public void setFileName(String fileName) 
    {
        this.fileName = fileName;
    }

    public String getFileName() 
    {
        return fileName;
    }

    public void setOriginalName(String originalName) 
    {
        this.originalName = originalName;
    }

    public String getOriginalName() 
    {
        return originalName;
    }

    public void setFilePath(String filePath) 
    {
        this.filePath = filePath;
    }

    public String getFilePath() 
    {
        return filePath;
    }

    public void setFileUrl(String fileUrl) 
    {
        this.fileUrl = fileUrl;
    }

    public String getFileUrl() 
    {
        return fileUrl;
    }

    public void setFileType(String fileType) 
    {
        this.fileType = fileType;
    }

    public String getFileType() 
    {
        return fileType;
    }

    public void setFileSize(Long fileSize) 
    {
        this.fileSize = fileSize;
    }

    public Long getFileSize() 
    {
        return fileSize;
    }

    public void setContentType(String contentType) 
    {
        this.contentType = contentType;
    }

    public String getContentType() 
    {
        return contentType;
    }

    public void setStoragePlatform(String storagePlatform) 
    {
        this.storagePlatform = storagePlatform;
    }

    public String getStoragePlatform() 
    {
        return storagePlatform;
    }

    public void setFileMetadata(String fileMetadata) 
    {
        this.fileMetadata = fileMetadata;
    }

    public String getFileMetadata() 
    {
        return fileMetadata;
    }

    public void setBizType(String bizType) 
    {
        this.bizType = bizType;
    }

    public String getBizType() 
    {
        return bizType;
    }

    public void setBizId(Long bizId) 
    {
        this.bizId = bizId;
    }

    public Long getBizId() 
    {
        return bizId;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("fileId", getFileId())
            .append("fileName", getFileName())
            .append("originalName", getOriginalName())
            .append("filePath", getFilePath())
            .append("fileUrl", getFileUrl())
            .append("fileType", getFileType())
            .append("fileSize", getFileSize())
            .append("contentType", getContentType())
            .append("storagePlatform", getStoragePlatform())
            .append("fileMetadata", getFileMetadata())
            .append("bizType", getBizType())
            .append("bizId", getBizId())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}

